Sentaurus Process
2. One-dimensional Process Simulation

2.1 Overview
2.2 Defining Initial 1D Grid
2.3 Defining Initial Simulation Domain
2.4 Initializing the Simulation
2.5 Setting Up a Meshing Strategy
2.6 Growing Screening Oxide
2.7 Measuring Oxide Thickness
2.8 Depositing Screening Oxide
2.9 Tcl Control Statements
2.10 Implantation
2.11 Saving As-Implanted Profile
2.12 Thermal Annealing, Drive-in, Activation, and Screening Oxide Strip
2.13 Assignment

Objectives

2.1 Overview

In this section, a simple 1D process simulation is performed.

Note:

2.2 Defining Initial 1D Grid

The initial 1D grid is defined with the line command:

line x location=0.0     spacing=  1<nm> tag=SiTop       
line x location= 10<nm> spacing=  2<nm>                 
line x location= 50<nm> spacing= 10<nm>                  
line x location=300<nm> spacing= 20<nm>                  
line x location=0.5<um> spacing= 50<nm>                  
line x location=2.0<um> spacing=0.2<um> tag=SiBottom    

The first argument of the line specifies the direction of the grid. For 1D, this is always x.

The grid spacing is defined by pairs of the location and spacing keywords. The keyword spacing defines the spacing between two grid lines at the specified location. Between two locations defined in the line command, Sentaurus Process expands or compresses the grid spacing linearly.

Grid spacing

Figure 1. Grid spacing as a function of the x-location.

In Figure 1, the grid spacing is shown as a function of the x-location for the first 50 nm. It is clear that the mesh density decreases linearly from 1 nm at X=0 to 2 nm at X=10 nm, and then to 10 nm at 50 nm. The last grid spacing in each interval usually deviates from the linear expansion to have the mesh point exactly at the location specified in the line command.

Units in Sentaurus Process can be specified explicitly by giving the units in angle brackets. Unless otherwise specified, the default unit of length is micrometer. Therefore, the statements location=2.0<um> and location=2.0 are equivalent. In this module, units are always given explicitly.

A line can be labeled with the tag keyword for later use in the region command.

2.3 Defining Initial Simulation Domain

The initial simulation domain is defined with the region command:

region Silicon xlo=SiTop xhi=SiBottom 

The keyword Silicon specifies the material of the region. The keywords xlo and xhi take tags as arguments, which are defined in the line commands.

For 2D and 3D, the additional keywords ylo, yhi, zlo, and zhi are used to define rectangular or cuboidal regions. In general, the initial simulation domain can consist of several regions.

2.4 Initializing the Simulation

The simulation is initialized with the init command:

init concentration=1.0e15<cm-3> field=Boron 

Here, the initial boron concentration in the silicon wafer (as defined in the previous region command) is set to 1015 cm-3.

The init command can be used to load previous simulations or .bnd files (2D and 3D). In earlier releases, loaded files needed to have a gas region on top.

2.5 Setting Up a Meshing Strategy

The initial grid is valid until the first command that changes the geometry, such as oxidation, deposition, and etching. For these steps, a remeshing strategy must be defined. Sentaurus Process can use Sentaurus Mesh and MGOALS as remeshing engines. The MGOALS library also performs etching and deposition. Sentaurus Mesh is the default.

To define a remeshing strategy, use:

mgoals min.normal.size=3<nm> max.lateral.size=0.2<um> normal.growth.ratio=1.4

where:

2.6 Growing Screening Oxide

The 1D process simulation is started by thermally growing a thin layer of sacrificial screening oxide:

gas_flow name=O2_1_N2_1 pressure=1<atm> flowO2=1.2<l/min> flowN2=1.0<l/min>
diffuse temperature=900<C> time=40<min> gas_flow=O2_1_N2_1

The gas_flow statement specifies the gas mixture. The name keyword defines a gas_flow record for later use in a diffuse command. The pressure of the ambient gas is set to 1 atm, and the flows of oxygen and nitrogen are set to 1.2 l/minute and 1.0 l/minute, respectively.

Other gas flow parameters, such as ambient gases and partial pressures, can be defined as well (refer to the Sentaurus Process User Guide).

The thermal oxidation step is started with the diffuse command. Here, the wafer is exposed to the oxidizing gases, defined in the gas_flow statement, for 20 minutes at an ambient temperature of 900°C.

More options such as temperature ramps and numeric parameters are available (refer to the Sentaurus Process User Guide for details).

Sentaurus Process prints information about the progress of the oxidation step:

Anneal step:    Time=40min, Ramp rate=0C/s, Temperature=900.0C
Temperature > minT. Diffusion: On   Reaction: On   Assembly: Serial
Reaction :         0s   to    0.0001s   step    :    0.0001s   temp: 900.0C
SProcess parallel assembly thread count = 1
SProcess Pardiso thread count = 1
Mechanics:         0s   to    0.0001s   step    :    0.0001s   temp: 900.0C
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --
Initializing:  
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --
Initialization is done.
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --
Diffusion:         0s   to    0.0001s   step (s):    0.0001s   temp: 900.0C
Reaction :    0.0001s   to 0.0001741s   step    : 7.414e-05s   temp: 900.0C
Mechanics:    0.0001s   to 0.0001741s   step    : 7.414e-05s   temp: 900.0C
Diffusion:    0.0001s   to 0.0001741s   step (s): 7.414e-05s   temp: 900.0C
Reaction : 0.0001741s   to 0.0002451s   step    : 7.093e-05s   temp: 900.0C
Mechanics: 0.0001741s   to 0.0002451s   step    : 7.093e-05s   temp: 900.0C
Diffusion: 0.0001741s   to 0.0002451s   step (s): 7.093e-05s   temp: 900.0C
...
Reaction :     37.01min to        40min step    :      2.99min temp: 900.0C
Mechanics:     37.01min to        40min step    :      2.99min temp: 900.0C
Diffusion:     37.01min to        40min step (s):      2.99min temp: 900.0C
Interpolating...elapsed time: 0.0000e+00

Elapsed time for diffuse 12.28s

2.7 Measuring Oxide Thickness

To measure the thickness of the thermally grown oxide, use:

select z=1
layers

The select command selects a quantity for postprocessing. Selecting "1" is a way to obtain the material thicknesses.

The layers command prints a list of regions with their respective top and bottom coordinates. It gives also the integral over the selected quantity in each region. Having selected "1", the integral equals the thickness:

{        Top                Bottom             Integral       Material }
{ -6.178796082035e-03  3.676329713272e-03  9.855125795306e-07 Oxide }
{  3.676329713272e-03  2.000000000000e+00  1.996323670287e-04 Silicon }

Here, 3.68 nm of silicon was consumed in the thermal oxidation process, and the final oxide thickness is 9.86 nm.

Internally, Sentaurus Process uses centimeter as the unit for length.

Selecting boron, the output of the layers command would look like:

{        Top                Bottom             Integral       Material }
{ -6.178796082035e-03  3.676329713272e-03  3.012697967871e+09 Oxide }
{  3.676329713272e-03  2.000000000000e+00  1.969873116640e+11 Silicon }

The integral boron concentration in the silicon layer is:

1.97 x 1011 cm-2 = 1015 cm-3 x (2 x 10-4 cm - 3.67 x 10-7 cm)

which is consistent with the specified wafer doping.

2.8 Depositing Screening Oxide

A faster alternative to the simulation of the oxide growth is to deposit an oxide layer and to simulate, afterwards, a thermal cycle to account for the thermal budget during the oxidation. This is an efficient way to emulate the creation of the screen oxide if oxidation-enhanced diffusion (OED) and the silicon consumption during the oxidation are not important.

To deposit a 10-nm layer of screening oxide and to perform a thermal cycle in an inert environment, use:

deposit material= {Oxide} type=isotropic time=1.0 rate= {0.01}
diffuse temperature=900<C> time=40<min> 

The diffuse command assumes an inert ambient if no gas flow is specified.

When you want to omit the oxide growth but OED is not negligible, specifying a reacting ambient together with the following flag:
pdbSetBoolean Grid DoNotMove.Reaction 1
switches on OED without applying velocities to the mesh nodes. This is often used in 3D. See Section 4.2 Changing Parameters in Command File for more details on the pdbSetBoolean command.

The deposit command here is written in the so-called long syntax. For simple etching and deposition types, a "short syntax" is also available. The command above, written in short syntax, would be:
deposit Oxide type=isotropic thickness=10.0<nm>

Using long syntax is recommended because it is consistent with more advanced etching types such as multimaterial and Fourier, for which only long syntax is available.

2.9 Tcl Control Statements

Tcl constructs can be used freely in the command file of Sentaurus Process (see the Tool Command Language module for an introduction).

The following code segment simulates oxidation or performs a deposition depending on the value of the Tcl variable SCREEN:

set SCREEN Grow
if { $SCREEN == "Grow" } {
#--- Growing screening oxide -----------------------------------------
gas_flow name=O2_1_N2_1 pressure=1<atm> flowO2=1.2<l/min> \
  flowN2=1.0<l/min>
diffuse temperature=900<C>  time=40<min> gas_flow=O2_1_N2_1

} else {
#--- Depositing screening oxide --------------------------------------
deposit material= {Oxide} type=isotropic time=1.0 rate= {0.01}
diffuse temperature=900<C>  time=40<min> 
}

2.10 Implantation

To implant arsenic with an energy of 50 keV, a dose of 1014 cm-2, an implant tilt of 7°, and a wafer rotation 0°, use:

implant Arsenic energy=50<keV> dose=1e14<cm-2>
                tilt=7<degree> rotation=0<degree>

Sentaurus Process reports:

Species           =  Arsenic
Dataset           =  Arsenic
Energy            =  30keV
Dose (WaferDose)  =  1e+14/cm2
BeamDose          =  1.0075e+14/cm2
Tilt              =   7deg
Rotation          =   0deg
Temperature       = 300.00K
Total implant time:    0.34sec
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - -

 Dose in:   Silicon_1     Oxide_1       Total
              Silicon       Oxide
    Boron  1.9698e+11  3.0153e+09  2.0000e+11
  Arsenic  9.9695e+13  2.7890e+12  1.0248e+14
      Int  9.4723e+07  7.8137e+04  1.1480e+08
      Vac  8.9123e+09  1.3409e+08  9.0664e+09
 ICluster  2.2397e+07  9.8685e+00  4.2397e+07
       O2  1.9963e-04  2.6253e+10  3.6253e+10
       B4  3.0629e-10  0.0000e+00  3.0629e-10
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - -

The report shows that due to the nonzero tilt angle, Sentaurus Process adapted the beam dose so that the total dose deposited on the wafer is as specified. The slice angle denotes the angle between the simulation plane and the normal to the wafer flat. By default, the simulation domain is parallel to the wafer flat.

The report shows the integrated doping concentrations for each species and region.

2.11 Saving As-Implanted Profile

To save the as-implanted profile, use:

SetPlxList { BTotal Arsenic_Implant }
WritePlx n1_1DasImpl.plx

The SetPlxList command defines which solution variables are saved in the .plx file. Here, only the total (chemical) boron and the as-implanted arsenic concentrations are saved. If the SetPlxList command is omitted, all available solutions are saved in the .plx file by default.

Besides the file name, here n1_1DasImpl.plx, the WritePlx command also accepts a material specifier, which restricts the plot to the given material. For 2D and 3D structures, the x-, y-, or z-coordinates of the 1D cutline must be given.

Figure 2 shows the as-implanted arsenic profiles and the background boron concentration. Note the boron depletion at the interface, which is caused by boron segregation during the oxide growth.

As-implanted arsenic profile

Figure 2. As-implanted arsenic profile and background boron concentration.

Figure 2 is generated by loading the .plx file into Inspect with:

> inspect n1_1DasImpl.plx

2.12 Thermal Annealing, Drive-in, Activation, and Screening Oxide Strip

To anneal the damage during implantation, or to drive the dopants deeper into the substrate, or to activate the implanted dopants in an inert environment, use:

diffuse temperature=1000<C> time=30<min>
strip Oxide

SetPlxList { BTotal BActive AsTotal AsActive }
WritePlx n1_1Danneal.plx

Here, the structure is annealed at a constant temperature of 1000°C for 30 minutes. The annealing is performed in an inert gas, because no particular reacting ambient is specified.

The annealed profiles are written to the file 1Danneal.plx. The total (chemical) concentration of boron and arsenic, as well as the respective electrically active (substitutional) concentrations, are saved.

Comparison of as-implanted and annealed arsenic profiles

Figure 3. Comparison of as-implanted and annealed arsenic profiles.

Figure 3 compares the as-implanted and the annealed arsenic profiles. It is generated by loading both .plx files into Inspect with:

> inspect n1_1DasImpl.plx n1_1Danneal.plx

Click to view the command file sprocess_fps.cmd.

2.13 Assignment

Create a Sentaurus Process command file for simulating the 1D doping profiles for a vertical npn bipolar transistor for the process flow outlined here.

Step 1. Substrate Definition

Step 2. Buried Layer and Partial Drive-In

Antimony profiles after implants and partial drive-in

Figure 4. Antimony profiles after implants and partial drive-in in Step 2.

Step 3. Epi Layer

Step 4. Base Implant and Drive-In

Step 5. Emitter Implant and Activation

Final profiles

Figure 5. Final profiles.

For the assignment:

Click to view a solution of the command file sprocess1_fps.cmd.

main menu    |   module menu    |   << previous section    |   next section >>